package paidaxing.blog.user.service;

import paidaxing.blog.user.dto.*;

import java.util.Map;

/**
 *
 *
 * @author heefM
 * @date 2025-10-18
 */
public interface UserService {
    /**
     * 用户注册
     * @param userRequest
     * @return
     */
    UserDTO register(UserRequest userRequest);

    /**
     * 用户登录
     *
     * @param request
     * @return
     */
    LoginResultDTO login(LoginRequest request);

    /**
     * 获取用户信息
     * @param id
     * @return
     */
    UserDTO getUserInfo(Long id);


    /**
     * 修改用户信息
     * @param userId
     * @param request
     * @return
     */
    UserDTO updateUserInfo(Long userId, UpdateUserRequest request);

    /**
     * 获取用户文章信息
     * @param userId
     * @param page
     * @param size
     * @return
     */
    Map<String, Object> getUserPosts(Long userId, Integer page, Integer size);

    /**
     * 更新用户头像
     * @param userId
     * @param avatarUrl
     */
    void updateAvatar(Long userId, String avatarUrl);

    /**
     * 用户数据统计
     * @param userId
     * @return
     */
    Map<String, Object> getUserStats(Long userId);

    /**
     * 获取当前登录用户信息
     * @param aLong
     * @return
     */
    UserDTO getCurrentUser(Long aLong);
}
